import java.util.HashMap;

public class Offer_50 {
    /**
     *剑指 Offer 50. 第一个只出现一次的字符
     *在字符串 s 中找出第一个只出现一次的字符。如果没有，返回一个单空格。 s 只包含小写字母
     */

    public char firstUniqChar(String s) {
        if(s==null || s.length()==0){
            return ' ';
        }
        char[] chars = s.toCharArray();
        HashMap<Character,Boolean> hashMap = new HashMap<Character, Boolean>();
        for (char achar : chars) {
            hashMap.put(achar,!hashMap.containsKey(achar));
        }
        for (char aChar : chars) {
            if(hashMap.get(aChar)){
                return aChar;
            }
        }
        return ' ';
    }

    public static void testFindChar(){
        String str = "啊！我爱你中国！啊，我爱你故乡";
        //存放每个字符的数组
        String [] strs = new String[str.length()];
        //计数该字符出现了多少次
        int count = 0;
        //先把字符串转换成数组
        for(int i = 0;i<strs.length;i++){
            strs[i] = str.substring(i,i+1);
        }
        //挨个字符进行查找，查找到之后count++
        for(int i = 0;i<strs.length;i++){
            if(strs[i].equals("爱你")){
                count++;
            }
        }

        System.out.println("一共有"+count+"个啊");
    }

    public static void main(String[] args) {
        String s = "";
        Offer_50 offer = new Offer_50();
        System.out.println(offer.firstUniqChar(s));
    }

}
